﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MassIntellect.WorkIt
{
    public interface IServiceLocator
    {
        /// <summary>
        /// Создание нового экземляра для каждого запроса
        /// </summary>
        bool IsCreateNewInstanceEveryResolve { get; set; }
        /// <summary>
        /// Разрешение перегистрации/перекрытие сервиса
        /// </summary>
        bool IsAllowReregister { get; set; }
        T Resolve<T>() 
            where T: class;
        T Resolve<T>(bool createNewInstance)
            where T : class;
        bool Register<T, P>() 
            where T : class
            where P : T, new();
        bool Register<T, P>(P instance)
            where T : class
            where P : T, new();
    }
}
